﻿Imports System.Configuration

Public Class ConfiguracionForm
#Region "Main del form"
    Private Sub salirConfiguracionButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles salirConfiguracionButton1.Click
        Me.Close()
    End Sub
    Private Sub ConfiguracionForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Cargar conf General
        If My.MySettings.Default.dosisFijaCheck = True Then
            CheckDosisFija.Checked = True
            TextBoxDosisFija.Text = My.MySettings.Default.dosisFijaValor
        Else
            TextBoxDosisFija.Text = My.MySettings.Default.dosisFijaValor
            TextBoxDosisFija.ReadOnly = True
            TextBoxDosisFija.Enabled = False
        End If
        'Cargar conf Maquinaria
        nombreMaquinariaTextBox1.Text = My.MySettings.Default.nombreMaquinaria.ToString()
        distanciaDesdeGPSTextBox1.Text = My.MySettings.Default.distanciaDesdeGPS.ToString()
        anchoLaborTextBox1.Text = My.MySettings.Default.anchoLabor.ToString()
        KgPorRevolucionTextBox1.Text = My.MySettings.Default.kgPorRevolucion.ToString()
        'Cargar conf Puerto
        puertosCambioCVObtenerComboBox1.Text = My.MySettings.Default.puertoConexionCV
        'Cargar conf sustitucion atributos shapefile
        sustituirDosisKgHaTextBox1.Text = My.MySettings.Default.sustituirDosisKgHa
        sustituirDescripcionTextBox2.Text = My.MySettings.Default.sustituirDescripcion
        'conf de velocidad de trabajo
        TextBoxVelocidadIdeal.Text = My.MySettings.Default.velocidadIdeal
        TextBoxVelocidadMinima.Text = My.MySettings.Default.velocidadMinima
        'conf factor de calibracion
        TextBoxFactorDeCalibracion.Text = My.MySettings.Default.ValorDeCalibracion.ToString
        'conf ubicacion de caja
        If My.MySettings.Default.cajaCentralCheck = True Then
            CheckCajaCentral.Checked = True

            cajaDerechaAnchoBox.ReadOnly = True
            cajaDerechaAnchoBox.Enabled = False
            CheckCajaDerecha.Enabled = False

            cajaIzquierdaAnchoBox.ReadOnly = True
            cajaIzquierdaAnchoBox.Enabled = False
            CheckCajaIzquierda.Enabled = False
        Else
            If My.MySettings.Default.cajaDerechaCheck = True Then
                CheckCajaDerecha.Checked = True
                cajaDerechaAnchoBox.Text = My.MySettings.Default.cajaDerechaText
            Else
                cajaDerechaAnchoBox.Text = My.MySettings.Default.cajaDerechaText
                cajaDerechaAnchoBox.ReadOnly = True
                cajaDerechaAnchoBox.Enabled = False
            End If
            If My.MySettings.Default.cajaIzquierdaCheck = True Then
                CheckCajaIzquierda.Checked = True
                cajaIzquierdaAnchoBox.Text = My.MySettings.Default.cajaIzquierdaCheck
            Else
                cajaIzquierdaAnchoBox.Text = My.MySettings.Default.cajaIzquierdaCheck
                cajaIzquierdaAnchoBox.ReadOnly = True
                cajaIzquierdaAnchoBox.Enabled = False
            End If
        End If
    End Sub
#End Region
    Private Sub guardarButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guardarButton1.Click
        'Conf General
        My.MySettings.Default.dosisFijaCheck = CheckDosisFija.Checked
        If CheckDosisFija.Checked = True Then
            My.MySettings.Default.dosisFijaValor = TextBoxDosisFija.Text
        End If
        'Conf Maquinaria
        My.MySettings.Default.distanciaDesdeGPS = Double.Parse(distanciaDesdeGPSTextBox1.Text)
        My.MySettings.Default.anchoLabor = Double.Parse(anchoLaborTextBox1.Text)
        My.MySettings.Default.nombreMaquinaria = nombreMaquinariaTextBox1.Text
        My.MySettings.Default.kgPorRevolucion = KgPorRevolucionTextBox1.Text
        'Conf Puerto
        My.MySettings.Default.puertoConexionCV = puertosCambioCVObtenerComboBox1.Text
        'Conf sustitucion atributos shapefile
        My.MySettings.Default.sustituirDosisKgHa = sustituirDosisKgHaTextBox1.Text
        My.MySettings.Default.sustituirDescripcion = sustituirDescripcionTextBox2.Text
        'conf de velocidad de trabajo
        My.MySettings.Default.velocidadIdeal = TextBoxVelocidadIdeal.Text
        My.MySettings.Default.velocidadMinima = TextBoxVelocidadMinima.Text
        'conf factor de calibracion
        My.MySettings.Default.ValorDeCalibracion = TextBoxFactorDeCalibracion.Text
        'conf caja ubicacion
        If CheckCajaCentral.Checked = False Then
            My.MySettings.Default.cajaCentralCheck = False
            If CheckCajaDerecha.Checked = True Then
                My.MySettings.Default.cajaDerechaText = cajaDerechaAnchoBox.Text
                My.MySettings.Default.cajaDerechaCheck = True
            End If
            If CheckCajaIzquierda.Checked = True Then
                My.MySettings.Default.cajaIzquierdaCheck = True
                My.MySettings.Default.cajaIzquierdaCheck = cajaIzquierdaAnchoBox.Text
            End If
        Else
            My.MySettings.Default.cajaIzquierdaCheck = False
            My.MySettings.Default.cajaDerechaCheck = False
            My.MySettings.Default.cajaCentralCheck = True
        End If
        'Guardar
        My.MySettings.Default.Save()
    End Sub
#Region "Configuracion CV"
    Shared Function obtenerPuertosSeriePC() As List(Of String)
        Dim puertosSerie As List(Of String)

        puertosSerie = New List(Of String)
        Try
            puertosSerie = New List(Of String)
            For Each puertosSerieObtenidos As String In My.Computer.Ports.SerialPortNames
                puertosSerie.Add(puertosSerieObtenidos)
            Next
            obtenerPuertosSeriePC = puertosSerie
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical +
                   MsgBoxStyle.OkOnly)
            obtenerPuertosSeriePC = puertosSerie
        End Try
    End Function
    Private Sub btObtenerPuertos_Click(ByVal sender As System.Object,
              ByVal e As System.EventArgs) Handles btObtenerPuertos.Click
        Dim puertosSerie As List(Of String)
        Dim i As Integer


        puertosCambioCVObtenerComboBox1.Items.Clear()

        puertosSerie = obtenerPuertosSeriePC()
        For i = 0 To puertosSerie.Count - 1
            puertosCambioCVObtenerComboBox1.Items.Add(puertosSerie(i).ToString)
        Next

        If puertosCambioCVObtenerComboBox1.Items.Count >= 1 Then
            puertosCambioCVObtenerComboBox1.Text = puertosCambioCVObtenerComboBox1.Items(0)
        Else
            puertosCambioCVObtenerComboBox1.Text = ""
        End If

        If puertosSerie.Count = 0 Then
            MsgBox("No se han detectado puertos serie en su equipo, " +
                   "asegúrese de que están correctamente configurados.",
                   MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
        End If
    End Sub
    Private Sub CheckDosisFija_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckDosisFija.CheckedChanged
        If CheckDosisFija.Checked = True Then
            TextBoxDosisFija.ReadOnly = False
            TextBoxDosisFija.Enabled = True
        Else
            TextBoxDosisFija.ReadOnly = True
            TextBoxDosisFija.Enabled = False
        End If
    End Sub
#End Region

    Private Sub btnDesconectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub CheckCajaCentral_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckCajaCentral.CheckedChanged
        If CheckCajaCentral.Checked = True Then
            cajaDerechaAnchoBox.ReadOnly = True
            cajaDerechaAnchoBox.Enabled = False
            CheckCajaDerecha.Enabled = False

            cajaIzquierdaAnchoBox.ReadOnly = True
            cajaIzquierdaAnchoBox.Enabled = False
            CheckCajaIzquierda.Enabled = False
        Else
            cajaDerechaAnchoBox.ReadOnly = False
            cajaDerechaAnchoBox.Enabled = True
            CheckCajaDerecha.Enabled = True

            cajaIzquierdaAnchoBox.ReadOnly = False
            cajaIzquierdaAnchoBox.Enabled = True
            CheckCajaIzquierda.Enabled = True
        End If
    End Sub
End Class